3.8 格式化占位符
在Go语言中,格式化的输入与输出,都需要使用到格式化占位符。例如在上节中我们用到的fmt.Printf()
输出,使用%v
进行占位,输出了计算结果。
Go 语言的格式化占位符大概可分为以下几种:
- 普通占位符
- 布尔占位符
- 整数占位符
- 浮点数占位符
- 复数占位符
- 字符串占位符
- 字节切片占位符
- 指针占位符
在本节中,我们仅针对普通占位符、字符串占位符、数字占位符进行讲解。
首先我们在YouCanGoCode
目录下新建一个目录,命名为lesson5
,新建一个go文件,命名为 lesson5.go。
普通占位符
占位符 | 说明 | 举例 | 输出 |
---|---|---|---|
%v |
普通占位 | fmt.Printf("书籍名称:%v", book) |
You Can Golang! |
在lesson5.go
文件中输入如下代码:
package main
import "fmt"
func main() {
book := "You Can Golang!"
fmt.Printf("%v", book)
}
执行lesson5.go
输出如下:
You Can Golang!
在上面的代码中,我们定义了一个字符串book
,通过fmt.Printf
输出,其中通过%v
接收book
的值,最终输出You Can Golang!
。
所以我们可以将占位符理解为字符串格式化,通过占位符获取传入的值进行拼接。
实际上,%v
主要用于结构体的占位,在这里我们先不深入,之后针对结构体
讲解的章节中我们会再次介绍。
%v
可以用于接收大部分的数据类型,一般的,如果我们不知道该用哪一个时,我们都会使用%v
。
字符串占位符
占位符 | 说明 | 举例 | 输出 |
---|---|---|---|
%s |
字符串占位 | fmt.Printf("%s", "You Can Golang") |
You Can Golang! |
在lesson5.go
文件中输入如下代码:
package main
import "fmt"
func main() {
book := "You Can Golang!"
fmt.Printf("%s", book)
}
执行lesson5.go
输出如下:
You Can Golang!
在上面的代码中,我们仅仅将%v
更改为了%s
,一般的,我们均使用%s
来表示字符串。
数字占位符
占位符 | 说明 | 举例 | 输出 |
---|---|---|---|
%f |
小数占位,默认保留小数点后6位 | fmt.Printf("%f", 10.2) |
10.200000 |
%.2f |
小数占位,表示保留2位小数 | fmt.Printf("%.2f", 10.235) |
10.23,10.23 |
%d |
整数占位,表示整数 | fmt.Printf("%d", 10) |
10 |
在lesson5.go
文件中输入如下代码:
package main
import "fmt"
func main() {
var a = 10.2
var b = 10.2345
var c = 10
fmt.Printf("a: %f\n", a)
fmt.Printf("b: %0.2f\n", b)
fmt.Printf("c: %d\n", c)
}
执行lesson5.go
输出如下:
a: 10.200000
b: 10.23
c: 10
在上面的代码中,我们使用%f
来表示小数,使用%0.2f
来将小数仅保留两位,同样的我们可以使用%0.3f
来保留3位小数,使用%0.4f
来保留4小数,而对于整数,则统一使用%d
来进行表示。
\n 换行符
在上面的讲解中,我们在代码里面有看到\n
,我们可以在代码里面进行实验,将\n
去掉,执行lesson5.go
观察输出,我们可以看到次数输出都连在了一起,所以可以总结出:\n
用于在输出的时候进行换行。
在lesson5.go
文件中输入如下代码:
package main
import "fmt"
func main() {
fmt.Printf("You\n Can\n GoLang\n")
}
执行lesson5.go
输出如下:
You
Can
GoLang
在上面的代码中,我们分别在You
、Can
、Golang
的后面添加了\n
,观察输出可以看到一共输出了3行。
通过代码可以总结出,在需要将输出换行的时候,我们只需要在换行内容的后面添加上\n
,就可以实现换行输出。
小结
在这些占位符中,还有许多其他的选项可供选择,如对齐方式、填充字符、字段宽度和精度等。
这些选项的使用可以根据不同的需求自定义,并通过占位符进行相应的设置,以达到更好的输出效果。
我们可以在实际使用到的时候去查询手册使用即可,在这里不用特别深入的去记忆,目前只要记住%v
、%s
、%d
、%f
就可以很大程度的覆盖到我们日常的使用范围。